package org.dromara.system.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.system.domain.SysChatContact;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 会话列视图对象 sys_chat_contact
 *
 * @author Lion Li
 * @date 2025-02-25
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysChatContact.class)
public class SysChatContactVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ExcelProperty(value = "ID")
    private Long id;

    /**
     * 标记人uid
     */
    @ExcelProperty(value = "标记人uid")
    private Long uid;

    /**
     * 房间ID
     */
    @ExcelProperty(value = "房间ID")
    private Long roomId;

    /**
     * 会话最新消息ID
     */
    @ExcelProperty(value = "会话最新消息ID")
    private Long lastMsgId;

    /**
     * 是否置顶
     */
    @ExcelProperty(value = "是否置顶")
    private Boolean top;

    /**
     * 通知类型 0 -> 允许接受消息 1 -> 接收但不提醒[免打扰] 2 -> 屏蔽消息
     */
    @TableField("mute_notification")
    private Integer muteNotification;

    /**
     * 读消息时间
     */
    @ExcelProperty(value = "读消息时间")
    private Date readTime;

    /**
     * 会话内消息最后更新的时间(只有普通会话需要维护，全员会话不需要维护)
     */
    @ExcelProperty(value = "会话内消息最后更新的时间(只有普通会话需要维护，全员会话不需要维护)")
    private Date activeTime;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

}
